#include <stdio.h>
#include <stdlib.h>

#include "listeTrans.h"
#include "trans.h"


void libereListeTrans( liste_trans_s **liste ){
	liste_trans_s *tmp;
	while( *liste != NULL ){
		tmp = *liste;
		*liste = tmp->suiv;
		libereTrans( &tmp->element );
		free( tmp );
	}
}


void print_trans( liste_trans_s *transition ){
	trans_s *tmp;
	while( transition != NULL ){
		tmp = transition->element;
		printf("%d -%c-> %d\n",tmp->depart, tmp->etiquette, tmp->arrivee);
		transition = transition->suiv;
	}
}

liste_trans_s* transToEltListe( trans_s *transition ){
	liste_trans_s *elt = (liste_trans_s*) malloc( sizeof( liste_trans_s ));
	if (elt == NULL){
	  fprintf(stderr, "Erreur lors d'allocation memoire\n");
	  exit(EXIT_FAILURE);
	}
	
	elt->suiv = NULL;
	elt->element = transition;
	return elt;
}

void addTransIntoList( trans_s* transition, liste_trans_s **liste ){
	liste_trans_s *tmp;
	if(*liste == NULL ){
		*liste = transToEltListe( transition );
		return;
	}
	tmp = *liste;
	while( tmp->suiv != NULL ){
		tmp = tmp->suiv;
	}
	tmp->suiv = transToEltListe( transition );
}